#pragma once
#ifndef _CALLBACKS_H
#define _CALLBACKS_H

#include "Defines.h"
#include <squirrel.h>

typedef SQInteger LU_RETURN;

#define LU_OK	(1)
#define LU_STOP	(0)

#ifdef __cplusplus
extern "C" {
#endif

	// Juppi's stuff
	LU_RETURN			PlayerConnect				( Player player );
	LU_RETURN			PlayerJoin					( Player player );
	LU_RETURN			PlayerPart					( Player player, unsigned char reason );
	LU_RETURN			PlayerSpawn					( Player player, SpawnClass spawn );

	// My stuff
	LU_RETURN			SSVBridgeUpdate				( int closing );
	LU_RETURN			TimeChange					( int hour, int minute );
	LU_RETURN			WeatherChange				( int oldWeather, int newWeather );
	LU_RETURN			PlayerEnterCheckpoint		( Player player, Checkpoint point );
	LU_RETURN			PlayerExitCheckpoint		( Player player, Checkpoint point );
	LU_RETURN			PlayerEnterSphere			( Player player, Sphere sphere );
	LU_RETURN			PlayerExitSphere			( Player player, Sphere sphere );
	LU_RETURN			ConsoleInput				( unsigned char command, unsigned char args );
	LU_RETURN			PlayerAction				( Player player, unsigned char message );
	LU_RETURN			PlayerArmourChange			( Player player, int oldArmour, int NewArmour );
	LU_RETURN			PlayerCashChange			( Player player, int oldCash, int newCash );
	LU_RETURN			PlayerChat					( Player player, unsigned char message );
	LU_RETURN			PlayerCommand				( Player player, unsigned char command, unsigned char args );
	LU_RETURN			PlayerDeath					( Player player, int reason );
	LU_RETURN			PlayerFall					( Player player );
	LU_RETURN			PlayerHealthChange			( Player player, int oldHP, int newHP );
	LU_RETURN			PlayerIslandChange			( Player player, int oldIsland, int newIsland );
	LU_RETURN			PlayerKill					( Player killer, Player victim, int weapon, int bodyPart );
	LU_RETURN			PlayerScoreChange			( Player player, int oldScore, int newScore );
	LU_RETURN			PlayerSkinChange			( Player player, int oldSkin, int newSkin );
	LU_RETURN			PlayerUpdate				( Player player );
	LU_RETURN			PlayerTeamChange			( Player player, int oldTeam, int newTeam );
	LU_RETURN			PlayerUseDetonator			( Player player );
	LU_RETURN			PlayerVirtualWorldChange	( Player player, int oldWorld, int newWorld );
	LU_RETURN			PlayerWeaponChange			( Player player, int oldWeapon, int newWeapon );
	LU_RETURN			PickupPickedUp				( Player player, Pickup pickup );
	LU_RETURN			PickupRespawn				( Pickup pickup );
	LU_RETURN			PlayerEnteredTrain			( Player player, int train );
	LU_RETURN			PlayerEnteredVehicle		( Player player, Vehicle vehicle, int seat );
	LU_RETURN			PlayerEnteringVehicle		( Player player, Vehicle vehicle, int door );
	LU_RETURN			PlayerExitedTrain			( Player player, int train );
	LU_RETURN			PlayerExitedVehicle			( Player player, Vehicle vehicle );
	LU_RETURN			PlayerExitingVehicle		( Player player, Vehicle vehicle );
	LU_RETURN			PlayerFailedVehicleEntry	( Player player, Vehicle vehicle, int seat );
	LU_RETURN			VehicleHealthChange			( Vehicle vehicle, int oldHP, int newHP );
	LU_RETURN			VehicleRespawn				( Vehicle vehicle );
	LU_RETURN			VehicleUpdate				( Vehicle vehicle, Player trigger );
	LU_RETURN			VehicleWrecked				( Vehicle vehicle );

#ifdef __cplusplus
}
#endif

#endif
